#include <iostream>
#include <string.h>
#include <limits.h>
#include <vector>
using namespace std;

/**
     * 初始化两个数组，一个序列数值数组K[N]，一个序列和数组SUM[N]，先遍历一边序列，
     * 为C或者G则K[i]为1，否则则置为0，然后计算连续M个K[I]之和存入SUM就行。
     *
     * @param s
     * @param m
     * @return
     */

string maxRatio(string s, int m)
{
  int size = s.size();
  vector<int> k(size, 0);
  vector<int> sum(size, 0);
  for (int i = 0; i < s.size(); i++)
  {
    if (s[i] == 'C' || s[i] == 'G')
    {
      k[i]++;
    }
  }
  // 统计连续k个元素的段的C或者G值
  for (int i = 0; i < s.size() - m; i++)
  {
    for (int j = 0; j < m; j++)
    {
      sum[i] += k[i + j];
    }
  }
  // 找C或者G值最大的那一个连续k个元素段
  int max = INT_MIN;
  int idx = 0;
  for (int i = 0; i < s.size(); i++)
  {
    if (sum[i] > max)
    {
      max = sum[i];
      idx = i;
    }
  }
  return s.substr(idx, m);
}

int main()
{
  string str;
  int n;
  while (getline(cin, str))
  {
    cin >> n;
    cout << maxRatio(str, n) << endl;
  }
  return 0;
}